package springbook.user.dao;

import java.util.List;

import springbook.user.domain.User;

public interface UserDao {
	int add(User user);
	int update(User user);
	User get(String id);
	List<User> getAll();
	int deleteAll();
	int getCount();
	int delete(String id);

//public class UserDao {
//	private JdbcTemplate jdbcTemplate;
//	private RowMapper<User> userMapper = new RowMapper<User>() {
//
//		@Override
//		public User mapRow(ResultSet rs, int rowNumber) throws SQLException {
//			User user = new User();
//			user.setId(rs.getString("id"));
//			user.setName(rs.getString("name"));
//			user.setPassword(rs.getString("password"));
//			
//			return user;
//		}
//	};
//	
//	public UserDao() {
//		 
//	}
//
//	public void setDataSource(DataSource dataSource) {
//		this.jdbcTemplate = new JdbcTemplate(dataSource);
//	}
//
//	public void add(User user) throws DuplicateKeyException {
//		this.jdbcTemplate.update("insert into users values (?, ?, ?)",
//				user.getId(),
//				user.getName(),
//				user.getPassword());
//	}
//
//	public void deleteAll() {
//		this.jdbcTemplate.update("delete from users");
//	}
//
//	public User get(String id) {
//		return this.jdbcTemplate.queryForObject("select * from users where id = ?",
//					new Object[] {id},
//					this.userMapper);
//	}
//
//	public List<User> getAll() {
//		return this.jdbcTemplate.query("select * from users order by id",
//					this.userMapper);
//	}
//
//	public void delete(String id) {
//		this.jdbcTemplate.update("delete from users where id = ?", id);
//	}
//	
//	public int getCount() {
//		return this.jdbcTemplate.queryForInt("select count(*) from users");
//	}
}
